import { defined } from '../Source/Cesium.js';
import { destroyObject } from '../Source/Cesium.js';
import { Pass } from '../Source/Cesium.js';
import { RenderState } from '../Source/Cesium.js';

    var ViewportPrimitive = function(fragmentShader) {
        this._fs = fragmentShader;
        this._command = undefined;
    };

    ViewportPrimitive.prototype.update = function(frameState) {
        if (!defined(this._command)) {
            this._command = frameState.context.createViewportQuadCommand(this._fs, {
                renderState : RenderState.fromCache(),
                pass : Pass.OPAQUE
            });
        }
        frameState.commandList.push(this._command);
    };

    ViewportPrimitive.prototype.isDestroyed = function() {
        return false;
    };

    ViewportPrimitive.prototype.destroy = function() {
        if (defined(this._command)) {
            this._command.shaderProgram = this._command.shaderProgram && this._command.shaderProgram.destroy();
        }
        return destroyObject(this);
    };
export default ViewportPrimitive;
